import Vue from "vue";
// 引入vuex
import Vuex from "vuex";
// 在vue中使用vuex
Vue.use(Vuex);
// 初始化仓库并暴露
export default new Vuex.Store({
  state: {
    count: 0,
    num: 0,
  },
  mutations: {
    // mutations方法接受state作为第一个参数
    increament(state) {
      state.count++;
    },
    increamentN(state, payload) {
      state.count += payload.n;
    },
  },
  actions: {
    incrementWait({ commit }) {
      setTimeout(() => {
        commit("increament");
      }, 1000);
    },
    incrementNWait({ commit }, payload) {
      setTimeout(() => {
        commit("increamentN", payload);
      }, 1);
    },
  },
  getters: {
    // getter其实就是组件中的计算属性,根据state的值衍生出来另外一个值
    // 所以getters中要先拿到sate中的值，getters中第一个参数就是state
    countSqrt(state) {
      return Math.sqrt(state.count);
    },
  },
});
